1. Technical Field
The invention is related to sharing digital video signals, and more particularly to a system and process for making a live digital video feed from one or more imaging devices, such as a digital video camera, simultaneously available to multiple applications running on a computing device.
2. Background Art
Sharing a live video feed among more than one program or application running on a computing device, or among multiple applications running on a series of networked computing devices can be extremely advantageous. For instance, take the situation where a video signal is being provided to a PC via a desktop video camera. It would be advantageous to share a live video feed among more than one application. In this way the same video feed could be used to perform multiple tasks simultaneously. For example, the feed from a desktop camera facing a PC user could be used by one application to monitor whether or not the user was present, while the feed could be used by another application to track eye gaze to determine where or if the user is looking at the display screen. Or, the aforementioned live video feed could be used by one application to provide input to a video conference, while another program uses the feed to track the person's eyes to control the movement of a screen cursor. Another example of a situation where multiple applications could use the same live video feed simultaneously would be where a camera is situated to view a living space. The feed from that camera could be used by different applications to monitor the room for motion, track people's location, track objects, record video, update a webcam page, and measure light levels, among other things.
Further, it would be advantageous for an application to be able to choose among camera feeds coming from multiple cameras connected to a computing device. In this way, an application could select the view most suited to its purpose, or perhaps even select more than one feed at a time for processing.
Sharing an analog video signal among applications running on a computing device can be easily accomplished by employing a conventional analog video signal splitter to make copies of the analog video feed. The copied signal can then be routed to different frame grabbers respectively associated with applications running on the computing device. However, the situation is quite different when dealing with digital video signals.
A digital video signal, such as those output by digital video cameras, does not lend itself to copying so simply. In fact, at present there is no system or process known to the inventors that is capable of making a digital video feed simultaneously available to multiple applications, or making multiple digital video feeds available to one or more applications running on a computing device. However, it is these live digital video feeds that are typically employed by applications to perform the tasks described above.